package com.ktgj.service.service;

import com.ktgj.service.domain.ContractLinkVipchannel;
import com.ktgj.service.domain.Vipchannel;
import com.ktgj.service.domain.VipchannelCommon;
import com.ktgj.service.domain.vo.ChannelVo;
import com.ktgj.service.domain.vo.VipHallVipChannelPrice;
import com.ktgj.service.domain.vo.VipchannelVo;

import java.util.List;
import java.util.Map;

/**
 * VIP通道			
Service接口
 * 
 * @author ruoyi
 * @date 2021-09-03
 */
public interface IVipchannelService 
{
    /**
     * 查询VIP通道			

     * 
     * @param vipchannelId VIP通道			
ID
     * @return VIP通道			

     */
    public Vipchannel selectVipchannelById(Long vipchannelId);

    /**
     * 查询VIP通道			
列表
     * 
     * @param vipchannel VIP通道			

     * @return VIP通道			
集合
     */
    public List<Vipchannel> selectVipchannelList(Vipchannel vipchannel);

    public List<Vipchannel> selectVipchannelAndContractList(Long contractId);

    /**
     * 新增VIP通道			

     * 
     * @param vipchannel VIP通道			

     * @return 结果
     */
    public int insertVipchannel(Vipchannel vipchannel);

    /**
     * 修改VIP通道			

     * 
     * @param vipchannel VIP通道			

     * @return 结果
     */
    public int updateVipchannel(Vipchannel vipchannel);

    /**
     * 批量删除VIP通道			

     * 
     * @param vipchannelIds 需要删除的VIP通道			
ID
     * @return 结果
     */
    public int deleteVipchannelByIds(Long[] vipchannelIds);

    /**
     * 删除VIP通道			
信息
     * 
     * @param vipchannelId VIP通道			
ID
     * @return 结果
     */
    public int deleteVipchannelById(Long vipchannelId);

    /**
     * vip通道价格维护
     * @param vipchannel
     * @return
     */
    public boolean addVipChannelPrice(ContractLinkVipchannel vipchannel);

    /**
     * 根据合同id、vip通道id查询是否存在价格维护
     * @param contractId 合同id
     * @param vipChannelId 服务id
     * @return
     */
    public int selectVipChannelByContractIdAndVipChannelId(Long contractId, Long vipChannelId);

    /**
     * 查询VIP通道列表远程使用
     * @return
     */
    List<Vipchannel> getVipchannelList();

    public List<Vipchannel> queryVipchannel(Long vipchannelId);

    public List<Map<String, Object>> queryVipchannelMap(Long vipchannelId);

    //根据id查询VIP通道（填写订单）
    public Vipchannel queryVipchannelByVipchannelId(Long vipchannelId);

    /**
     * 根据机场三字码查询
     * */
    public boolean selectVipchannelByAirportCode(String airportCode);

    /**
     * 常用服务
     * @param customerId
     * @return
     */
    public List<VipchannelCommon> commonServices(Long customerId);

    /**
     * 根据id查询VIP通道价格
     * @param id
     * @return
     */
    public VipHallVipChannelPrice selectVipChannelPrice(Long id);

    public int queryVipChannelNumber(Long customerId);

    /**
     * vip通道基本数据列表
     * */
    public List<Vipchannel> selectVipchannelList(ChannelVo channelVo) throws Exception;

    /**
     * 添加VIP通道信息
     */
    public int addVipchannel(Vipchannel vipchannel);

    /**
     * 删除vip通道信息
     * */
    public int delVipchannel(Long id);
}
